Copy & paste the commands below directly into Terminal.
sudo apt update
sudo apt install -y curl
sudo apt update && sudo apt upgrade -y
sudo reboot
curl -s https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/setup.sh | sudo bash
sudo apt install linux-surface linux-surface-secureboot-mok
sudo reboot
sudo apt install mesa mesa-utils
glxinfo | grep "OpenGL renderer"
sudo apt install linux-firmware
sudo reboot
sudo apt install \
wget git \
lxc lxc-utils \
qemu-kvm libvirt-daemon-system libvirt-clients \
bridge-utils \
adb
sudo systemctl enable --now libvirtd
sudo usermod -aG libvirt,kvm,video $USER
reboot
ls /dev/dri
card0
renderD128
git clone <hudiy-repo-url>
cd hudiy
./install.sh
or
sudo ./hudiy install
hudiy start
hudiy stop
hudiy start
kvm-ok
End of guide.
If you see an error like:
Unable to locate package linux-surface
Unable to locate package linux-surface-secureboot-mok
This means the linux-surface APT repository was not added correctly. Follow the steps below exactly.
sudo apt update
sudo apt install -y curl ca-certificates gnupg lsb-release
curl -fsSL https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/setup.sh | sudo bash
This step:
sudo apt update
If you see errors here (404, NO_PUBKEY, repo not found), stop and resolve them before continuing.
sudo apt install linux-surface linux-surface-secureboot-mok
apt search linux-surface
You should see results such as:
linux-surface
linux-surface-secureboot-mok
ls /etc/apt/sources.list.d/ | grep surface
Expected output:
linux-surface.list
sudo rm -f /etc/apt/sources.list.d/linux-surface.list
sudo apt update
curl -fsSL https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/setup.sh | sudo bash
sudo apt update
sudo apt install linux-surface linux-surface-secureboot-mok
If you see errors like:
Unable to locate package linux-surface Unable to locate package linux-surface-secureboot-mok This means the linux-surface repository is not installed or active. Follow the steps below exactly.
sudo apt update sudo apt install -y curl ca-certificates gnupg lsb-release curl -fsSL https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/setup.sh | sudo bash This command adds the linux-surface APT repository and signing key.
sudo apt update apt search linux-surface You should see:
linux-surface linux-surface-secureboot-mok sudo apt install linux-surface linux-surface-secureboot-mok sudo rm -f /etc/apt/sources.list.d/linux-surface.list sudo apt update curl -fsSL https://raw.githubusercontent.com/linux-surface/linux-surface/master/pkg/setup.sh | sudo bash sudo apt update sudo apt install linux-surface linux-surface-secureboot-mok If Step 2 returned a 404 error, this means the linux-surface project has changed branch names and the old URL is no longer valid.
This is not your fault. The fix is simply to use the updated URL.
curl -fsSL https://raw.githubusercontent.com/linux-surface/linux-surface/main/pkg/setup.sh | sudo bash The project moved from master to main, which causes the 404 error if you use the old command.
sudo apt update sudo apt install linux-surface linux-surface-secureboot-mok If you still receive a 404 error when running the linux-surface setup script, this means the script URL is currently unavailable. You can safely add the repository manually instead.
sudo apt update
sudo apt install -y curl ca-certificates gnupg lsb-release
curl -fsSL https://pkg.surfacelinux.com/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/linux-surface.gpg
echo "deb [signed-by=/usr/share/keyrings/linux-surface.gpg] https://pkg.surfacelinux.com/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/linux-surface.list
sudo apt update
sudo apt install linux-surface linux-surface-secureboot-mok
apt search linux-surface
If packages appear, the repository is correctly installed.